最近因为课题需要,使用欧式距离来计算多个特征向量间的距离。开始的想法是使用循环来解决,发现计算复杂度高,时间长
在博客中看到作者GoHowz 和其引用frankzd博客,通过矩阵的方法来代替之前循环计算方法,速度提升很多!!!
作者原文:https://blog.csdn.net/IT_forlearn/article/details/100022244
为了方便后面查询,粘贴了GoHowz 博客中的计算方法如下:
def euclidean_dist(x, y):
"""
Args:
x: pytorch Variable, with shape [m, d]
y: pytorch Variable, with shape [n, d]
Returns:
dist: pytorch Variable, with shape [m, n]
"""
m, n = x.size(0), y.size(0)
# xx经过pow()方法对每单个数据进行二次方操作后,在axis=1 方向(横向,就是第一列向最后一列的方向)加和&#x